package com.link2room.jetfire.dto.result.base;

import com.link2room.common.annotation.L2RDatetimeString;
import com.link2room.common.annotation.L2RDes;
import com.link2room.common.dto.result.base.BaseDto;
import com.link2room.common.util.DateUtil;
import com.link2room.jetfire.constant.JetfireDescriptPrefixKeyConstant;

import java.math.BigDecimal;
import java.util.Date;

/**
 * Created by sss on 2016/9/20.
 */
public class ReservationAccountDto extends BaseDto {
    /**
     * 联房订单号
     */
    private String l2RNo;
    /**
     * pms账务号
     */
    private String pmsAccountNo;
    /**
     * 预订总价(底价)
     */
    private BigDecimal resRateSumCost;
    /**
     * 预订房费(底价)
     */
    private BigDecimal resRateRoomCost;
    /**
     * 预订附加费用(底价)
     */
    private BigDecimal resRateExtraCost;
    /**
     * 预订总价（卖价）
     */
    private BigDecimal resRateSumSale;
    /**
     * 预订房费（卖价）
     */
    private BigDecimal resRateRoomSale;
    /**
     * 预订附加费用（卖价）
     */
    private BigDecimal resRateExtraSale;
    /**
     * 预订总价（PMS）
     */
    private BigDecimal resRateSumPms;
    /**
     * 预订房费（PMS）
     */
    private BigDecimal resRateRoomPms;
    /**
     * 预订附加费用（PMS）
     */
    private BigDecimal resRateExtraPms;
    /**
     * 已支付费用
     */
    private BigDecimal deposit;
    /**
     * 最后一次结账时间
     */
    private Date accountDate;
    /**
     * 最后一次结账时间
     */
    @L2RDatetimeString(source = "accountDate")
    private String accountDatetime;
    private BigDecimal resRatePaySale;
    private BigDecimal resRatePromotionShow;
    private BigDecimal l2RPromotion;
    private BigDecimal hotelPromotion;
    private BigDecimal realRateSum;
    private BigDecimal realRateRoom;
    private BigDecimal realRateExtra;
    /**
     * PMS支付状态:NONE未操作，DONE已操作，FAIL失败，REJECT撤销
     */
    private String pmsPaysta;
    /**
     * L2R支付状态:NONE未操作，DONE已操作，FAIL失败，REJECT撤销
     */
    private String l2rPaysta;

    private BigDecimal savepayMoney;

    private BigDecimal refund;
    /**
     * L2R支付状态:NONE无需退款，REFUNDING退款中，REJECT拒绝,DONE成功，FAIL失败;
     */
    private String refundSta;
    /**
     * L2R支付状态:NONE无需退款，REFUNDING退款中，REJECT拒绝,DONE成功，FAIL失败;
     */
    @L2RDes(value = JetfireDescriptPrefixKeyConstant.RESERVATION_REFUNDSTA,source = "refundSta")
    private String refundStaStr;
    @L2RDes(value = JetfireDescriptPrefixKeyConstant.RESERVATION_REFUNDSTAEN,source = "refundSta")
    private String refundStaStrEn;
    private String commCode;


    public Date getAccountDate() {
        return accountDate;
    }

    public void setAccountDate(Date accountDate) {
        this.accountDate = accountDate;
    }

    public String getAccountDatetime() {
        return accountDatetime;
    }

    public void setAccountDatetime(String accountDatetime) {
        this.accountDatetime = accountDatetime;
        setAccountDate(DateUtil.parseDateNewFormat(accountDatetime));
    }

    public String getL2RNo() {
        return l2RNo;
    }

    public void setL2RNo(String l2RNo) {
        this.l2RNo = l2RNo;
    }

    public String getPmsAccountNo() {
        return pmsAccountNo;
    }

    public void setPmsAccountNo(String pmsAccountNo) {
        this.pmsAccountNo = pmsAccountNo;
    }

    public BigDecimal getResRateSumCost() {
        return resRateSumCost;
    }

    public void setResRateSumCost(BigDecimal resRateSumCost) {
        this.resRateSumCost = resRateSumCost;
    }

    public BigDecimal getResRateRoomCost() {
        return resRateRoomCost;
    }

    public void setResRateRoomCost(BigDecimal resRateRoomCost) {
        this.resRateRoomCost = resRateRoomCost;
    }

    public BigDecimal getResRateExtraCost() {
        return resRateExtraCost;
    }

    public void setResRateExtraCost(BigDecimal resRateExtraCost) {
        this.resRateExtraCost = resRateExtraCost;
    }

    public BigDecimal getResRateSumSale() {
        return resRateSumSale;
    }

    public void setResRateSumSale(BigDecimal resRateSumSale) {
        this.resRateSumSale = resRateSumSale;
    }

    public BigDecimal getResRateRoomSale() {
        return resRateRoomSale;
    }

    public void setResRateRoomSale(BigDecimal resRateRoomSale) {
        this.resRateRoomSale = resRateRoomSale;
    }

    public BigDecimal getResRateExtraSale() {
        return resRateExtraSale;
    }

    public void setResRateExtraSale(BigDecimal resRateExtraSale) {
        this.resRateExtraSale = resRateExtraSale;
    }

    public BigDecimal getResRateSumPms() {
        return resRateSumPms;
    }

    public void setResRateSumPms(BigDecimal resRateSumPms) {
        this.resRateSumPms = resRateSumPms;
    }

    public BigDecimal getResRateRoomPms() {
        return resRateRoomPms;
    }

    public void setResRateRoomPms(BigDecimal resRateRoomPms) {
        this.resRateRoomPms = resRateRoomPms;
    }

    public BigDecimal getResRateExtraPms() {
        return resRateExtraPms;
    }

    public void setResRateExtraPms(BigDecimal resRateExtraPms) {
        this.resRateExtraPms = resRateExtraPms;
    }

    public BigDecimal getDeposit() {
        return deposit;
    }

    public void setDeposit(BigDecimal deposit) {
        this.deposit = deposit;
    }

    public BigDecimal getResRatePaySale() {
        return resRatePaySale;
    }

    public void setResRatePaySale(BigDecimal resRatePaySale) {
        this.resRatePaySale = resRatePaySale;
    }

    public BigDecimal getL2RPromotion() {
        return l2RPromotion;
    }

    public void setL2RPromotion(BigDecimal l2RPromotion) {
        this.l2RPromotion = l2RPromotion;
    }

    public BigDecimal getHotelPromotion() {
        return hotelPromotion;
    }

    public void setHotelPromotion(BigDecimal hotelPromotion) {
        this.hotelPromotion = hotelPromotion;
    }

    public BigDecimal getRealRateSum() {
        return realRateSum;
    }

    public void setRealRateSum(BigDecimal realRateSum) {
        this.realRateSum = realRateSum;
    }

    public BigDecimal getRealRateRoom() {
        return realRateRoom;
    }

    public void setRealRateRoom(BigDecimal realRateRoom) {
        this.realRateRoom = realRateRoom;
    }

    public BigDecimal getRealRateExtra() {
        return realRateExtra;
    }

    public void setRealRateExtra(BigDecimal realRateExtra) {
        this.realRateExtra = realRateExtra;
    }

    public BigDecimal getResRatePromotionShow() {
        return resRatePromotionShow;
    }

    public void setResRatePromotionShow(BigDecimal resRatePromotionShow) {
        this.resRatePromotionShow = resRatePromotionShow;
    }

    public String getPmsPaysta() {
        return pmsPaysta;
    }

    public void setPmsPaysta(String pmsPaysta) {
        this.pmsPaysta = pmsPaysta;
    }

    public String getL2rPaysta() {
        return l2rPaysta;
    }

    public void setL2rPaysta(String l2rPaysta) {
        this.l2rPaysta = l2rPaysta;
    }

    public BigDecimal getSavepayMoney() {
        return savepayMoney;
    }

    public void setSavepayMoney(BigDecimal savepayMoney) {
        this.savepayMoney = savepayMoney;
    }

    public BigDecimal getRefund() {
        return refund;
    }

    public void setRefund(BigDecimal refund) {
        this.refund = refund;
    }

    public String getRefundSta() {
        return refundSta;
    }

    public void setRefundSta(String refundSta) {
        this.refundSta = refundSta;
    }

    public String getRefundStaStr() {
        return refundStaStr;
    }

    public void setRefundStaStr(String refundStaStr) {
        this.refundStaStr = refundStaStr;
    }

    public String getCommCode() {
        return commCode;
    }

    public void setCommCode(String commCode) {
        this.commCode = commCode;
    }

    public String getRefundStaStrEn() {
        return refundStaStrEn;
    }

    public void setRefundStaStrEn(String refundStaStrEn) {
        this.refundStaStrEn = refundStaStrEn;
    }
}
